package com.dkm.orproject.dkmoa.dao;

import com.dkm.orproject.dkmoa.domain.OaNews;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;


@Mapper
public interface OaNewsMapper {
    int deleteByPrimaryKey(Long pkNewsId);

    int insert(OaNews record);

    /**
     * 增加新闻的方法
     * @param record 新闻的对象
     * @return 返回增加的行数
     */
    int insertSelective(OaNews record);

    /**
     * 根据新闻id查询出内容
     * @param pkNewsId 新闻id
     * @return 返回新闻的模型
     */
    OaNews selectByPrimaryKey(Long pkNewsId);

    /**
     * 逻辑删除的方法
     * @param record 新闻对象
     * @return 返回删除的行数
     */
    int updateByPrimaryKeySelective(OaNews record);

    /**
     * 删除新闻类型 后删除对应的新闻方法
     * @param oaNews 新闻对象
     * @return 返回删除的行数
     */
    int updateIsva(OaNews oaNews);

    int updateByPrimaryKey(OaNews record);
    /**
     * 分页查询
     * @param oaNews 新闻模块 用于条件查询
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 返回总数据
     */

    List<OaNews> selectAll(@Param("oaNews") OaNews oaNews, @Param("startDate") String startTime, @Param("endDate") String endTime);

    /**
     * 根据新闻类型id 查询新闻
     * @param pkNewsTypeId 新闻类型id
     * @return 返回新闻数据结果
     */
    List<OaNews> selectNewsType(@Param("pkNewsTypeId") Long pkNewsTypeId);

    /**
     * 总行数
     * @param oaNews 新闻模块 用于条件查询
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 总行数
     */
    Long rowCount(@Param("oaNews") OaNews oaNews, @Param("startDate") String startTime, @Param("endDate") String endTime);
    /**
     * 批量逻辑删除
     * @param list 新闻id的集合
     * @return 删除的行数
     */
    int deleteAll(List<Long> list);

    /**
     * 批量删除新闻类型接着删除新闻的方法
     * @param list 新闻类型id的集合
     * @return 删除的行数
     */
    int deleteTypeAll(List<Long> list);
}